<?php
if (isset($_POST['Q850_reason_code']))
	$Q_code = $_POST['Q850_reason_code'];
elseif (isset($_POST['Q850_reason_label']))
	$Q_label = $_POST['Q850_reason_label'];
elseif (isset($_POST['SIP_reason_code']))
	$S_code = $_POST['SIP_reason_code'];
elseif (isset($_POST['FS_reason_label'])){
	$FS_code = $_POST['FS_reason_label'];
	$FS_direction = $_POST['FS_direction'];
}else exit();
if (isset($Q_code)){
	$Q850_reason_code = array(0=> '[Q850 0] UNSPECIFIED 未指定。没有其他原因代码适用。这通常由路由器在没有其他代码适用的情况下给出。',1=> '[Q850 1] UNALLOCATED_NUMBER (SIP 404) 未分配（未划分的）号码，此原因表示无法联系到被叫方，因为尽管被叫方号格式有效，但当前未分配(已分配)。 ',2=> '[Q850 2] NO_ROUTE_TRANSIT_NET (SIP 404) 此原因表明，发送此原因的设备已收到通过特定中转网络路由呼叫的请求，而该请求是它不承认的。发送此原因的设备无法识别传输网络，因为传输网络不存在或因为该特定传输网络（虽然存在）不会为发送此原因的设备提供服务。 ',3=> '[Q850 3] NO_ROUTE_DESTINATION (SIP 404) 没有到目的地的路线，此原因表示无法到达被叫方，因为呼叫已经路由的网络不能达到所需的目的地。这个原因在网络依赖的基础上得到支持。 ',6=> '[Q850 6] CHANNEL_UNACCEPTABLE 频道无法接受，此原因表示最近标识的信道对于发送实体在此调用中不可接受。',7=> '[Q850 7] CALL_AWARDED_DELIVERED 呼叫被授予，通过已建立的频道交付，此原因表示用户已被授予来电，并且来电正在连接到已为该用户建立的类似呼叫的通道（例如分组模式x.25虚拟呼叫）。',16=> '[Q850 16] NORMAL_CLEARING 正常呼叫清除，此原因表示由于呼叫中涉及的用户之一请求清除呼叫，所以正在清除呼叫。在正常情况下，这个原因的来源不是网络。',17=> '[Q850 17] USER_BUSY (SIP 486) 用户忙碌，此原因用于指示由于遇到用户繁忙条件而导致被叫方无法接受另一个呼叫。该原因值可以由被叫用户或网络生成。在用户确定用户繁忙的情况下，注意到用户设备与呼叫兼容。 ',18=> '[Q850 18] NO_USER_RESPONSE (SIP 408) 没有用户回复，当被叫方在指定的时间内没有响应具有警报或连接指示的呼叫建立消息时，就会使用此原因。 ',19=> '[Q850 19] NO_ANSWER (SIP 480) 没有用户回答（用户提醒），当被叫方被警告但在规定的时间内没有以连接指示响应时，使用该原因。注 - 该原因不一定由Q.931程序产生，但可能由内部网络定时器产生。 ',20=> '[Q850 20] SUBSCRIBER_ABSENT (SIP 480) 订户缺席，当移动台已注销时，使用该原因值，无法与移动台获得无线电联系，或者个人电信用户暂时无法在任何用户网络接口寻址。在这种情况下，SofiaSIP通常会引发USER_NOT_RESTED。 ',21=> '[Q850 21] CALL_REJECTED (SIP 603) 呼叫被拒绝，此原因表明发送此原因的设备不希望接受此呼叫，但它可能已接受呼叫，因为发送此原因的设备既不忙也不不兼容。网络也可能产生这个原因，表明由于补充业务限制而导致呼叫被清除。诊断字段可能包含有关补充服务的附加信息和拒绝原因。SIP错误代码也可为：401 402 403 ',22=> '[Q850 22] NUMBER_CHANGED (SIP 410) 号码改变，当由主叫方指示的被叫方号码不再被分配时，该原因被返回给主叫方，新的被叫方号码可以可选地包括在诊断字段中。如果网络不支持这个错误原因，则应使用 未分配（未划分的）号码 这个错误原因。 ',23=> '[Q850 23] REDIRECTION_TO_NEW_DESTINATION (SIP 410)  这个原因被一个通用的ISUP协议机制所使用，该协议机制可以由交换机调用，该交换机决定该呼叫应该被设置为不同的被叫号码。这种交换可以通过使用该原因值来调用重定向机制，以请求呼叫中涉及的先前交换将呼叫路由到新号码。',25=> '[Q850 25] EXCHANGE_ROUTING_ERROR (SIP 483)  这个原因表明用户指示的目的地不能到达，因为中间交换机已经释放了呼叫，因为在执行跳计数器程序方面达到了限制。这个原因是由一个中间节点产生的，当它递减跳计数器值时，给出结果0。',27=> '[Q850 27] DESTINATION_OUT_OF_ORDER (SIP 502) 目的地不按顺序，此原因表示由于目标接口的功能不正常而无法到达用户指定的目的地。术语“功能不正常”表示信号消息无法传送给远程方; 例如远程方的物理层或数据链路层故障，或者离线的用户设备。 ',28=> '[Q850 28] INVALID_NUMBER_FORMAT (SIP 484) 无效数字格式（地址不完整），此原因表示由于被叫方号码不是有效格式或不完整，无法到达被叫方。 ',29=> '[Q850 29] FACILITY_REJECTED (SIP 501) 设施被拒绝，当用户请求的补充服务不能由网络提供时，返回此原因。 ',30=> '[Q850 30] RESPONSE_TO_STATUS_ENQUIRY 对状态查询的反应，当产生STATUS消息的原因是先前收到STATUS询问时，这个原因包含在STATUS消息中。',31=> '[Q850 31] NORMAL_UNSPECIFIED (SIP 480) 正常，未指定，只有当正常类别中没有其他原因适用时，才会使用此原因报告正常事件。 ',34=> '[Q850 34] NORMAL_CIRCUIT_CONGESTION (SIP 503) 没有电路/频道可用，这个原因表明目前没有合适的电路/信道可用于处理呼叫。 ',38=> '[Q850 38] NETWORK_OUT_OF_ORDER (SIP 503) 网络故障，这个原因表明网络运行不正常，并且情况可能会持续相当长的时间，例如立即重新尝试呼叫不太可能成功。 ',41=> '[Q850 41] NORMAL_TEMPORARY_FAILURE (SIP 503) 暂时失败，这个原因表明网络运行不正常，并且这种情况不可能持续很长一段时间; SIP错误代码也可为：400 ',42=> '[Q850 42] SWITCH_CONGESTION (SIP 503) 交换设备拥塞，这个原因表明产生这种原因的交换设备正在经历一段高流量。 ',43=> '[Q850 43] ACCESS_INFO_DISCARDED 访问信息丢弃，此原因表示网络无法按要求向远程用户传递访问信息，即诊断中指示的用户对用户信息，低层兼容性，高层兼容性或子地址。注意到，丢弃的特定类型的访问信息可选地包括在诊断中。',44=> '[Q850 44] REQUESTED_CHAN_UNAVAIL (SIP 503) 请求的电路/频道不可用，当接口的另一端不能提供请求实体指示的电路或信道时，返回此原因。 ',45=> '[Q850 45] PRE_EMPTED ',47=> '[Q850 47] RESOURCE_UNAVAILABLE 资源不可用，未指定，仅当资源不可用类中没有其他原因适用时，才会使用此原因报告资源不可用事件。',50=> '[Q850 50] FACILITY_NOT_SUBSCRIBED 请求的设施未订阅，此原因表示用户已请求可用的补充服务，但用户无权使用。',52=> '[Q850 52] OUTGOING_CALL_BARRED (SIP 403) 传出呼叫被禁止 这个原因表明，尽管主叫方是CUG出局呼叫的成员，但是CUG的这个成员不允许去电呼叫。',54=> '[Q850 54] INCOMING_CALL_BARRED (SIP 403) 来电禁止 此原因表示虽然被叫方是CUG呼入的成员，但不允许传入呼叫给CUG的这个成员。',57=> '[Q850 57] BEARERCAPABILITY_NOTAUTH (SIP 403) 承载能力未经授权，这个原因表明用户已经请求了由产生这个原因的设备实现的承载能力，但是用户没有被授权使用。 ',58=> '[Q850 58] BEARERCAPABILITY_NOTAVAIL (SIP 503) 目前尚不具备承载能力，这个原因表明用户已经请求由产生这个原因但在此时不可用的设备实现的承载能力。 ',63=> '[Q850 63] SERVICE_UNAVAILABLE 服务或选项不可用，未指定，只有在服务或选项不可用类中没有其他原因适用时，此原因才用于报告服务或选项不可用事件。',65=> '[Q850 65] BEARERCAPABILITY_NOTIMPL (SIP 488) 承载能力未实现，这个原因表明发送该原因的设备不支持请求的承载能力。 ',66=> '[Q850 66] CHAN_NOT_IMPLEMENTED 通道类型未实现，此原因表示发送此原因的设备不支持请求的通道类型',69=> '[Q850 69] FACILITY_NOT_IMPLEMENTED (SIP 501) 请求的设施未实施，该原因表明发送该原因的设备不支持所请求的补充业务。 ',79=> '[Q850 79] SERVICE_NOT_IMPLEMENTED (SIP 501) 服务或选项未实施，未指定，只有当服务中没有其他原因或未实现的选项类应用时，才会使用此原因报告服务或选项未实现的事件。 ',81=> '[Q850 81] INVALID_CALL_REFERENCE 无效的呼叫参考值，此原因表示发送此原因的设备已收到带有呼叫参考的消息，该消息当前未在用户网络接口上使用。',88=> '[Q850 88] INCOMPATIBLE_DESTINATION (SIP 488) 不兼容的目的地，该原因表示发送该原因的设备已经接收到建立具有低层兼容性，高层兼容性或其他兼容性属性（例如数据速率）的呼叫的请求，所述呼叫不能被容纳。 ',95=> '[Q850 95] INVALID_MSG_UNSPECIFIED 无效消息，未指定，只有当无效消息类别中没有其他原因适用时，才会使用此原因报告无效的消息事件。',96=> '[Q850 96] MANDATORY_IE_MISSING 强制性信息元素缺失，这个原因表明发送该原因的设备已经收到一条消息，该消息在该消息可以被处理之前缺少必须存在于消息中的信息元素。',97=> '[Q850 97] MESSAGE_TYPE_NONEXIST 消息类型不存在或未实现，这个原因表明发送此原因的设备已收到带有消息类型的消息，它不能识别，因为这是一个未定义但未由发送此原因的设备实现的消息。',98=> '[Q850 98] WRONG_MESSAGE 消息与呼叫状态不兼容或消息类型不存在或未实现。，该原因表示发送此原因的设备已收到消息，以使过程未指示这是在通话状态下允许接收的消息，或者收到状态消息，指示不兼容的呼叫状态。',99=> '[Q850 99] IE_NONEXIST 信息元素/参数不存在或未实现，这个原因表明，发送该原因的设备已经接收到消息，该消息包括未被识别的信息元素/参数，因为信息元素/参数名称没有被定义或者被定义，但是没有被实施发送原因的设备。这个原因表明信息元素/参数被丢弃。但是，信息元素不需要出现在消息中，以便发送原因的设备处理消息。',100=> '[Q850 100] INVALID_IE_CONTENTS 信息元素内容无效，这个原因表明发送这个原因的设备已经收到了它所实现的信息单元; 然而，IE中的一个或多个字段以发送该原因的设备尚未实现的方式进行编码。',101=> '[Q850 101] WRONG_CALL_STATE 与呼叫状态不兼容的消息，此原因表示收到的消息与呼叫状态不兼容。',102=> '[Q850 102] RECOVERY_ON_TIMER_EXPIRE (SIP 504) 定时器到期后恢复，这个原因表明程序已经由与错误处理程序相关的定时器到期而启动。这通常与NAT问题有关。确保您的ATA中启用了“NAT映射启用”。如果它与NAT不相关，它有时可能与提供商有关，请确保确保另一个出站提供商不能解决问题。FreeSWITCH还会在远程方发送了 408呼叫过期 时返回此信息。 ',103=> '[Q850 103] MANDATORY_IE_LENGTH_ERROR 参数不存在或未实现 - 传递（国家使用），这个原因表明发送该原因的设备已经收到一条消息，其中包含未被识别的参数，因为这些参数没有被定义或者被定义，但是没有被发送该原因的设备执行。原因表明参数被忽略。另外，如果发送这个原因的设备是中间点，那么这个原因表明参数没有改变。',111=> '[Q850 111] PROTOCOL_ERROR 协议错误，未指定，仅当协议错误类别中没有其他原因适用时，才会使用此原因报告协议错误事件。',127=> '[Q850 127] INTERWORKING 互通，未指定，此原因表示互通呼叫（通常是对SW56服务的呼叫）已结束。',487=> '[Q850 487] ORIGINATOR_CANCEL (SIP 487) 发起的请求被取消 ',500=> '[Q850 500] CRASH 崩溃',501=> '[Q850 501] SYSTEM_SHUTDOWN 系统关闭',502=> '[Q850 502] LOSE_RACE 进程中断',503=> '[Q850 503] MANAGER_REQUEST 当您发送api命令使其挂断时使用此原因。例如uuid_kill <uuid>',600=> '[Q850 600] BLIND_TRANSFER 隐蔽的转移',601=> '[Q850 601] ATTENDED_TRANSFER 附加的转移',602=> '[Q850 602] ALLOTTED_TIMEOUT 指定的超时',603=> '[Q850 603] USER_CHALLENGE 用户质疑',604=> '[Q850 604] MEDIA_TIMEOUT 媒体超时',605=> '[Q850 605] PICKED_OFF 这个原因意味着通过从另一个分机截取它（即从另一个分机拨叫** ext_number）来接听电话。',606=> '[Q850 606] USER_NOT_REGISTERED 这意味着您试图向忘记注册的SIP用户发起呼叫。',607=> '[Q850 607] PROGRESS_TIMEOUT 超出在获得媒体(无论是早期媒体、铃声还是应答)之前等待的最长时间，例如放弃路由之前的最大PDD--从发送INVITE到接收第一个铃声响应的时间，例如：SIP/2.0、180 Ringing 或183。',609=> '[Q850 609] GATEWAY_DOWN 网关关闭（不在OPTIONS或SUBSCRIBE上回答）');
	if (isset($Q850_reason_code[$Q_code]))
		die($Q850_reason_code[$Q_code]);
	else 
		die("未定义的错误码");
}elseif (isset($Q_label)){
	$Q850_reason_label = array('UNSPECIFIED'=>'[Q850 0] UNSPECIFIED 未指定。没有其他原因代码适用。这通常由路由器在没有其他代码适用的情况下给出。','UNALLOCATED_NUMBER'=>'[Q850 1] UNALLOCATED_NUMBER (SIP 404) 未分配（未划分的）号码，此原因表示无法联系到被叫方，因为尽管被叫方号格式有效，但当前未分配(已分配)。','NO_ROUTE_TRANSIT_NET'=>'[Q850 2] NO_ROUTE_TRANSIT_NET (SIP 404) 此原因表明，发送此原因的设备已收到通过特定中转网络路由呼叫的请求，而该请求是它不承认的。发送此原因的设备无法识别传输网络，因为传输网络不存在或因为该特定传输网络（虽然存在）不会为发送此原因的设备提供服务。','NO_ROUTE_DESTINATION'=>'[Q850 3] NO_ROUTE_DESTINATION (SIP 404) 没有到目的地的路线，此原因表示无法到达被叫方，因为呼叫已经路由的网络不能达到所需的目的地。这个原因在网络依赖的基础上得到支持。','CHANNEL_UNACCEPTABLE'=>'[Q850 6] CHANNEL_UNACCEPTABLE 频道无法接受，此原因表示最近标识的信道对于发送实体在此调用中不可接受。','CALL_AWARDED_DELIVERED'=>'[Q850 7] CALL_AWARDED_DELIVERED 呼叫被授予，通过已建立的频道交付，此原因表示用户已被授予来电，并且来电正在连接到已为该用户建立的类似呼叫的通道（例如分组模式x.25虚拟呼叫）。','NORMAL_CLEARING'=>'[Q850 16] NORMAL_CLEARING 正常呼叫清除，此原因表示由于呼叫中涉及的用户之一请求清除呼叫，所以正在清除呼叫。在正常情况下，这个原因的来源不是网络。','USER_BUSY'=>'[Q850 17] USER_BUSY (SIP 486) 用户忙碌，此原因用于指示由于遇到用户繁忙条件而导致被叫方无法接受另一个呼叫。该原因值可以由被叫用户或网络生成。在用户确定用户繁忙的情况下，注意到用户设备与呼叫兼容。','NO_USER_RESPONSE'=>'[Q850 18] NO_USER_RESPONSE (SIP 408) 没有用户回复，当被叫方在指定的时间内没有响应具有警报或连接指示的呼叫建立消息时，就会使用此原因。','NO_ANSWER'=>'[Q850 19] NO_ANSWER (SIP 480) 没有用户回答（用户提醒），当被叫方被警告但在规定的时间内没有以连接指示响应时，使用该原因。注 - 该原因不一定由Q.931程序产生，但可能由内部网络定时器产生。','SUBSCRIBER_ABSENT'=>'[Q850 20] SUBSCRIBER_ABSENT (SIP 480) 订户缺席，当移动台已注销时，使用该原因值，无法与移动台获得无线电联系，或者个人电信用户暂时无法在任何用户网络接口寻址。在这种情况下，SofiaSIP通常会引发USER_NOT_RESTED。','CALL_REJECTED'=>'[Q850 21] CALL_REJECTED (SIP 603) 呼叫被拒绝，此原因表明发送此原因的设备不希望接受此呼叫，但它可能已接受呼叫，因为发送此原因的设备既不忙也不不兼容。网络也可能产生这个原因，表明由于补充业务限制而导致呼叫被清除。诊断字段可能包含有关补充服务的附加信息和拒绝原因。SIP错误代码也可为：401 402 403','NUMBER_CHANGED'=>'[Q850 22] NUMBER_CHANGED (SIP 410) 号码改变，当由主叫方指示的被叫方号码不再被分配时，该原因被返回给主叫方，新的被叫方号码可以可选地包括在诊断字段中。如果网络不支持这个错误原因，则应使用 未分配（未划分的）号码 这个错误原因。','REDIRECTION_TO_NEW_DESTINATION'=>'[Q850 23] REDIRECTION_TO_NEW_DESTINATION (SIP 410)  这个原因被一个通用的ISUP协议机制所使用，该协议机制可以由交换机调用，该交换机决定该呼叫应该被设置为不同的被叫号码。这种交换可以通过使用该原因值来调用重定向机制，以请求呼叫中涉及的先前交换将呼叫路由到新号码。','EXCHANGE_ROUTING_ERROR'=>'[Q850 25] EXCHANGE_ROUTING_ERROR (SIP 483)  这个原因表明用户指示的目的地不能到达，因为中间交换机已经释放了呼叫，因为在执行跳计数器程序方面达到了限制。这个原因是由一个中间节点产生的，当它递减跳计数器值时，给出结果0。','DESTINATION_OUT_OF_ORDER'=>'[Q850 27] DESTINATION_OUT_OF_ORDER (SIP 502) 目的地不按顺序，此原因表示由于目标接口的功能不正常而无法到达用户指定的目的地。术语“功能不正常”表示信号消息无法传送给远程方; 例如远程方的物理层或数据链路层故障，或者离线的用户设备。','INVALID_NUMBER_FORMAT'=>'[Q850 28] INVALID_NUMBER_FORMAT (SIP 484) 无效数字格式（地址不完整），此原因表示由于被叫方号码不是有效格式或不完整，无法到达被叫方。','FACILITY_REJECTED'=>'[Q850 29] FACILITY_REJECTED (SIP 501) 设施被拒绝，当用户请求的补充服务不能由网络提供时，返回此原因。','RESPONSE_TO_STATUS_ENQUIRY'=>'[Q850 30] RESPONSE_TO_STATUS_ENQUIRY 对状态查询的反应，当产生STATUS消息的原因是先前收到STATUS询问时，这个原因包含在STATUS消息中。','NORMAL_UNSPECIFIED'=>'[Q850 31] NORMAL_UNSPECIFIED (SIP 480) 正常，未指定，只有当正常类别中没有其他原因适用时，才会使用此原因报告正常事件。','NORMAL_CIRCUIT_CONGESTION'=>'[Q850 34] NORMAL_CIRCUIT_CONGESTION (SIP 503) 没有电路/频道可用，这个原因表明目前没有合适的电路/信道可用于处理呼叫。','NETWORK_OUT_OF_ORDER'=>'[Q850 38] NETWORK_OUT_OF_ORDER (SIP 503) 网络故障，这个原因表明网络运行不正常，并且情况可能会持续相当长的时间，例如立即重新尝试呼叫不太可能成功。','NORMAL_TEMPORARY_FAILURE'=>'[Q850 41] NORMAL_TEMPORARY_FAILURE (SIP 503) 暂时失败，这个原因表明网络运行不正常，并且这种情况不可能持续很长一段时间; SIP错误代码也可为：400','SWITCH_CONGESTION'=>'[Q850 42] SWITCH_CONGESTION (SIP 503) 交换设备拥塞，这个原因表明产生这种原因的交换设备正在经历一段高流量。','ACCESS_INFO_DISCARDED'=>'[Q850 43] ACCESS_INFO_DISCARDED 访问信息丢弃，此原因表示网络无法按要求向远程用户传递访问信息，即诊断中指示的用户对用户信息，低层兼容性，高层兼容性或子地址。注意到，丢弃的特定类型的访问信息可选地包括在诊断中。','REQUESTED_CHAN_UNAVAIL'=>'[Q850 44] REQUESTED_CHAN_UNAVAIL (SIP 503) 请求的电路/频道不可用，当接口的另一端不能提供请求实体指示的电路或信道时，返回此原因。','PRE_EMPTED'=>'[Q850 45] PRE_EMPTED','RESOURCE_UNAVAILABLE'=>'[Q850 47] RESOURCE_UNAVAILABLE 资源不可用，未指定，仅当资源不可用类中没有其他原因适用时，才会使用此原因报告资源不可用事件。','FACILITY_NOT_SUBSCRIBED'=>'[Q850 50] FACILITY_NOT_SUBSCRIBED 请求的设施未订阅，此原因表示用户已请求可用的补充服务，但用户无权使用。','OUTGOING_CALL_BARRED'=>'[Q850 52] OUTGOING_CALL_BARRED (SIP 403) 传出呼叫被禁止 这个原因表明，尽管主叫方是CUG出局呼叫的成员，但是CUG的这个成员不允许去电呼叫。','INCOMING_CALL_BARRED'=>'[Q850 54] INCOMING_CALL_BARRED (SIP 403) 来电禁止 此原因表示虽然被叫方是CUG呼入的成员，但不允许传入呼叫给CUG的这个成员。','BEARERCAPABILITY_NOTAUTH'=>'[Q850 57] BEARERCAPABILITY_NOTAUTH (SIP 403) 承载能力未经授权，这个原因表明用户已经请求了由产生这个原因的设备实现的承载能力，但是用户没有被授权使用。','BEARERCAPABILITY_NOTAVAIL'=>'[Q850 58] BEARERCAPABILITY_NOTAVAIL (SIP 503) 目前尚不具备承载能力，这个原因表明用户已经请求由产生这个原因但在此时不可用的设备实现的承载能力。','SERVICE_UNAVAILABLE'=>'[Q850 63] SERVICE_UNAVAILABLE 服务或选项不可用，未指定，只有在服务或选项不可用类中没有其他原因适用时，此原因才用于报告服务或选项不可用事件。','BEARERCAPABILITY_NOTIMPL'=>'[Q850 65] BEARERCAPABILITY_NOTIMPL (SIP 488) 承载能力未实现，这个原因表明发送该原因的设备不支持请求的承载能力。','CHAN_NOT_IMPLEMENTED'=>'[Q850 66] CHAN_NOT_IMPLEMENTED 通道类型未实现，此原因表示发送此原因的设备不支持请求的通道类型','FACILITY_NOT_IMPLEMENTED'=>'[Q850 69] FACILITY_NOT_IMPLEMENTED (SIP 501) 请求的设施未实施，该原因表明发送该原因的设备不支持所请求的补充业务。','SERVICE_NOT_IMPLEMENTED'=>'[Q850 79] SERVICE_NOT_IMPLEMENTED (SIP 501) 服务或选项未实施，未指定，只有当服务中没有其他原因或未实现的选项类应用时，才会使用此原因报告服务或选项未实现的事件。','INVALID_CALL_REFERENCE'=>'[Q850 81] INVALID_CALL_REFERENCE 无效的呼叫参考值，此原因表示发送此原因的设备已收到带有呼叫参考的消息，该消息当前未在用户网络接口上使用。','INCOMPATIBLE_DESTINATION'=>'[Q850 88] INCOMPATIBLE_DESTINATION (SIP 488) 不兼容的目的地，该原因表示发送该原因的设备已经接收到建立具有低层兼容性，高层兼容性或其他兼容性属性（例如数据速率）的呼叫的请求，所述呼叫不能被容纳。','INVALID_MSG_UNSPECIFIED'=>'[Q850 95] INVALID_MSG_UNSPECIFIED 无效消息，未指定，只有当无效消息类别中没有其他原因适用时，才会使用此原因报告无效的消息事件。','MANDATORY_IE_MISSING'=>'[Q850 96] MANDATORY_IE_MISSING 强制性信息元素缺失，这个原因表明发送该原因的设备已经收到一条消息，该消息在该消息可以被处理之前缺少必须存在于消息中的信息元素。','MESSAGE_TYPE_NONEXIST'=>'[Q850 97] MESSAGE_TYPE_NONEXIST 消息类型不存在或未实现，这个原因表明发送此原因的设备已收到带有消息类型的消息，它不能识别，因为这是一个未定义但未由发送此原因的设备实现的消息。','WRONG_MESSAGE'=>'[Q850 98] WRONG_MESSAGE 消息与呼叫状态不兼容或消息类型不存在或未实现。，该原因表示发送此原因的设备已收到消息，以使过程未指示这是在通话状态下允许接收的消息，或者收到状态消息，指示不兼容的呼叫状态。','IE_NONEXIST'=>'[Q850 99] IE_NONEXIST 信息元素/参数不存在或未实现，这个原因表明，发送该原因的设备已经接收到消息，该消息包括未被识别的信息元素/参数，因为信息元素/参数名称没有被定义或者被定义，但是没有被实施发送原因的设备。这个原因表明信息元素/参数被丢弃。但是，信息元素不需要出现在消息中，以便发送原因的设备处理消息。','INVALID_IE_CONTENTS'=>'[Q850 100] INVALID_IE_CONTENTS 信息元素内容无效，这个原因表明发送这个原因的设备已经收到了它所实现的信息单元; 然而，IE中的一个或多个字段以发送该原因的设备尚未实现的方式进行编码。','WRONG_CALL_STATE'=>'[Q850 101] WRONG_CALL_STATE 与呼叫状态不兼容的消息，此原因表示收到的消息与呼叫状态不兼容。','RECOVERY_ON_TIMER_EXPIRE'=>'[Q850 102] RECOVERY_ON_TIMER_EXPIRE (SIP 504) 定时器到期后恢复，这个原因表明程序已经由与错误处理程序相关的定时器到期而启动。这通常与NAT问题有关。确保您的ATA中启用了“NAT映射启用”。如果它与NAT不相关，它有时可能与提供商有关，请确保确保另一个出站提供商不能解决问题。FreeSWITCH还会在远程方发送了 408呼叫过期 时返回此信息。','MANDATORY_IE_LENGTH_ERROR'=>'[Q850 103] MANDATORY_IE_LENGTH_ERROR 参数不存在或未实现 - 传递（国家使用），这个原因表明发送该原因的设备已经收到一条消息，其中包含未被识别的参数，因为这些参数没有被定义或者被定义，但是没有被发送该原因的设备执行。原因表明参数被忽略。另外，如果发送这个原因的设备是中间点，那么这个原因表明参数没有改变。','PROTOCOL_ERROR'=>'[Q850 111] PROTOCOL_ERROR 协议错误，未指定，仅当协议错误类别中没有其他原因适用时，才会使用此原因报告协议错误事件。','INTERWORKING'=>'[Q850 127] INTERWORKING 互通，未指定，此原因表示互通呼叫（通常是对SW56服务的呼叫）已结束。','ORIGINATOR_CANCEL'=>'[Q850 487] ORIGINATOR_CANCEL (SIP 487) 发起的请求被取消','CRASH'=>'[Q850 500] CRASH 崩溃','SYSTEM_SHUTDOWN'=>'[Q850 501] SYSTEM_SHUTDOWN 系统关闭','LOSE_RACE'=>'[Q850 502] LOSE_RACE 进程中断','MANAGER_REQUEST'=>'[Q850 503] MANAGER_REQUEST 当您发送api命令使其挂断时使用此原因。例如uuid_kill <uuid>','BLIND_TRANSFER'=>'[Q850 600] BLIND_TRANSFER 隐蔽的转移','ATTENDED_TRANSFER'=>'[Q850 601] ATTENDED_TRANSFER 附加的转移','ALLOTTED_TIMEOUT'=>'[Q850 602] ALLOTTED_TIMEOUT 指定的超时','USER_CHALLENGE'=>'[Q850 603] USER_CHALLENGE 用户质疑','MEDIA_TIMEOUT'=>'[Q850 604] MEDIA_TIMEOUT 媒体超时','PICKED_OFF'=>'[Q850 605] PICKED_OFF 这个原因意味着通过从另一个分机截取它（即从另一个分机拨叫** ext_number）来接听电话。','USER_NOT_REGISTERED'=>'[Q850 606] USER_NOT_REGISTERED 这意味着您试图向忘记注册的SIP用户发起呼叫。','PROGRESS_TIMEOUT'=>'[Q850 607] PROGRESS_TIMEOUT 超出在获得媒体(无论是早期媒体、铃声还是应答)之前等待的最长时间，例如放弃路由之前的最大PDD--从发送INVITE到接收第一个铃声响应的时间，例如：SIP/2.0、180 Ringing 或183。','GATEWAY_DOWN'=>'[Q850 609] GATEWAY_DOWN 网关关闭（不在OPTIONS或SUBSCRIBE上回答）');
	if (isset($Q850_reason_label[$Q_label]))
		die($Q850_reason_label[$Q_label]);
	else
		die("未定义的Q850错误标识");
}elseif (isset($S_code)){
	$SIP_reason_code = array("-69"=>"无可用路由","-70"=>"号码受限","-39"=>"被叫忙","-37"=>"会话超时","-34"=>"处理超时","-32"=>"主叫前缀受限","-25"=>"超出线数","-9"=>"非法呼叫","-8"=>"被叫挂断","-7"=>"主叫挂断","-5"=>"费率不存在",	"400"=>"Bad request 错误的请求，对应于NORMAL_TEMPORARY_FAILURE 临时不可用","401"=>"Unauthorized 未认证，对应于CALL_REJECTED 访问拒绝","402"=>"Payment required 需要支付，对应于CALL_REJECTED 访问拒绝","403"=>"Forbidden 拒绝执行请求，对应Q850有三个情况：OUTGOING_CALL_BARRED、INCOMING_CALL_BARRED、BEARERCAPABILITY_NOTAUTH","404"=>"Not found 找不到，对应Q850有3种情况：UNALLOCATED_NUMBER、NO_ROUTE_TRANSIT_NET、NO_ROUTE_DESTINATION","405"=>"Method not allowed 方法不许可","406"=>"Not acceptable  不可接受","407"=>"Proxy Authentication required  需要进行代理认证","408"=>"Request timeout	请求超时无回复","410"=>"Gone 被叫号码已改变，对应Q850两种情况：NUMBER_CHANGED、REDIRECTION_TO_NEW_DESTINATION","413"=>"Request entity too large 请求实体太大","414"=>"Request-URI too long 请求URI太长","415"=>"Unsupported media type 不支持的媒体类型","416"=>"Unsupported URI scheme 不支持的URI格式","420"=>"Bad extension 不正确的extension","421"=>"Extension required 需要extension","423"=>"Interval too brief 间隔太短","480"=>"Temporarily unavailable 被叫方当前不可用，对应Q850有三种情况：NO_ANSWER、SUBSCRIBER_ABSENT、NORMAL_UNSPECIFIED", "481"=>"Call/transaction does not exist 不存在调用/事务，没有和现存的对话或者事务匹配", "482"=>"Loop detected 环路检测","483"=>"Too many hops 用户指示的目的地不能到达","484"=>"Address incomplete 地址不完整","485"=>"Ambiguous 模棱两可","486"=>"Busy here 被叫方当前系统上不能接听本电话","487"=>"Request terminated 请求被BYE或者CANCEL所终止","488"=>"Not Acceptable Here Request-URI所指出的特定资源不能接受","500"=>"Server internal error 服务器未知情况，不能继续处理请求","501"=>"Not implemented 设施被拒绝，对应Q850有三种情况：FACILITY_REJECTED、FACILITY_NOT_IMPLEMENTED、SERVICE_NOT_IMPLEMENTED","502"=>"Bad gateway 路由不正常而无法到达用户指定的目的地","503"=>"Service unavailable 服务器暂时不可用，基本都是网络或电路问题，对应Q850有五种情况：NORMAL_CIRCUIT_CONGESTION、NETWORK_OUT_OF_ORDER、NORMAL_TEMPORARY_FAILURE、SWITCH_CONGESTION、REQUESTED_CHAN_UNAVAIL","504"=>"Gateway time-out 外部服务器上没有收到及时应答","505"=>"Version not supported 版本不支持","513"=>"Message too large 信息太多","600"=>"Busy everywhere 被叫方忙，并不打算接听","603"=>"Decline 用户明确的不想应答","604"=>"Does not exist anywhere 不存在的号码","606"=>"Not acceptable 不可接受，指 承载能力未实现 或 正常，未指定错误");
	if (isset($SIP_reason_code[$S_code]))
		die($SIP_reason_code[$S_code]);
	else
		die("未定义的SIP错误码");
}elseif(isset($FS_code)){
	$FS_reason_code = array("send_bye"=>["inbound"=>"平台将BYE发送给来电者（平台挂断）","outbound"=>"平台将BYE发送到端点（平台挂断）"],"recv_bye"=>["inbound"=>"平台从呼叫者处收到BYE（使用者挂断）","outbound"=>"平台从端点收到了BYE（使用者挂断）"],"send_refuse"=>["inbound"=>"平台拒绝了呼叫（如4xx或5xx）","outbound"=>"端点拒绝了呼叫（如4xx或5xx）"],"recv_refuse"=>["inbound"=>"平台从呼叫者处收到拒绝（如6xx）","outbound"=>"平台从端点收到了拒绝（如6xx）"],"recv_cancel"=>["inbound"=>"平台从呼叫者处收到取消（平台收到CANCEL）","outbound"=>"平台从端点收到了取消（平台收到CANCEL）"],"send_cancel"=>["inbound"=>"","outbound"=>"平台取消了通话（平台发送CANCEL）"]);
	if (isset($FS_reason_code[$FS_code][$FS_direction]))
		die($FS_reason_code[$FS_code][$FS_direction]);
	else
		die("未定义的SIP错误码");
			
}
